interface Shop {
  sell: { (): void; }
}

class PuDongShop implements Shop {
  skuList: Array<string> = []
  constructor() {
    this.skuList.push('东方明珠塔纪念品')
    this.skuList.push('迪士尼门票')
    this.skuList.push('滴水湖游轮八折券')
  }
  sell() {
    console.log('浦东商店售卖的有: ')
    console.log(this.skuList.join('、'))
    console.log('');
  };
}

class XuHuiShop implements Shop {
  skuList: Array<string> = []
  constructor() {
    this.skuList.push('大悦城')
    this.skuList.push('龙华寺')
    this.skuList.push('田子坊')
  }
  sell() {
    console.log('徐汇商店售卖的有: ')
    console.log(this.skuList.join('、'))
    console.log('');
  };
}

class Customer {
  shopping(shop: Shop) {
    shop.sell()
  }
}

const customer = new Customer()
customer.shopping(new PuDongShop())
customer.shopping(new XuHuiShop())
